//Groups: @ingroup\s+(API_REF|IMG_BASIC_API|INS_BASIC_API|INS_INST_API|INS_BASIC_API_GEN_IA32|INS_BASIC_API_ARM|INS_BASIC_API_IA32|INS_BASIC_API_IPF|INS_MOD_API_GEN_IA32|SEC_BASIC_API|RTN_BASIC_API|REG_BASIC_API|REG_CPU_GENERIC|REG_CPU_ARM|REG_CPU_IPF|REG_CPU_IA32|TRACE_BASIC_API|BBL_BASIC_API|SYM_BASIC_API|MISC_PRINT|MISC_PARSE|PIN_MEMORY|KNOB_API|KNOB_BASIC|KNOB_PRINT|LOCK|PIN_CONTROL|DEBUG_API|TYPE_BASE|INSTLIB|ALARM|ROGUE|ROGUE_CFG|ROGUE_CFG_BASIC_API|ROGUE_EDG_BASIC_API|ROGUE_BBL_BASIC_API|ROGUE_INS_BASIC_API|ROGUE_TRACE_BASIC_API|ROGUE_CONTROL_BASIC_API|CODECACHE_API|OPTIMIZATION_API|MISC|CHECKPOINTING|INST_ARGS|PIN_THREAD_API|EDG_BASIC|BBL_BASIC|ROGUE_BASIC_API|CODECACHE_NYI_API|INS_BASIC_API_GEN_ARM|INS_BASIC_API_GEN_IPF|MESSAGE_TYPE|MESSAGE_BASIC|MISC_BASIC|ITC_INST_API|CHECKPOINTING_PRIVATE
/* PIN API */

/* THIS FILE IS AUTOMAGICALLY GENERATED - DO NOT CHANGE DIRECTLY*/


typedef enum
{
    CATEGORY_INVALID,
    CATEGORY_LOAD,
    CATEGORY_STORE,
    CATEGORY_LOAD_COPRO,
    CATEGORY_STORE_COPRO,
    CATEGORY_LOAD_MULTIPLE,
    CATEGORY_STORE_MULTIPLE,
    CATEGORY_LOAD_CONST,
    CATEGORY_PREFETCH,
    
    CATEGORY_MUL,
    CATEGORY_MULACC,
    CATEGORY_SWAP,

    // floating point
    CATEGORY_FMAC,
    CATEGORY_FALU,
    CATEGORY_FALU1,
    CATEGORY_FCMP,
    CATEGORY_FCMP0,

    CATEGORY_FSCNVT,
    CATEGORY_FDCNVT,


    // control flow changing

    CATEGORY_BRANCH,
    CATEGORY_JUMP,
    CATEGORY_TEST,
    CATEGORY_CMP_CONST,
    
    CATEGORY_ALU,
    CATEGORY_MOV,
    CATEGORY_MISC,
    
    CATEGORY_MTSR,
    CATEGORY_MFSR,

    CATEGORY_SWI,

    CATEGORY_MCR,
    CATEGORY_MRC,
    CATEGORY_CDP,
    CATEGORY_NONE,

    CATEGORY_LAST
}CATEGORY_ARM;

                                                                  /* DO NOT EDIT */
typedef enum
{
    PREDICATE_EQ = 0x0,
    PREDICATE_NE = 0x1,
    PREDICATE_HS = 0x2, // CS
    PREDICATE_LO = 0x3, // CC   
    PREDICATE_MI = 0x4,
    PREDICATE_PL = 0x5,
    PREDICATE_VS = 0x6,
    PREDICATE_VC = 0x7,
    PREDICATE_HI = 0x8,
    PREDICATE_LS = 0x9,
    PREDICATE_GE = 0xa,
    PREDICATE_LT = 0xb,
    PREDICATE_GT = 0xc,
    PREDICATE_LE = 0xd,
    PREDICATE_AL = 0xe,
    PREDICATE_ALWAYS_TRUE = PREDICATE_AL,  // PIN interface requirement
    PREDICATE_INVALID = 0xf,
    PREDICATE_NONE,
    PREDICATE_LAST
}PREDICATE_ARM;

                                                                  /* DO NOT EDIT */
extern string CATEGORY_StringShort(UINT32 type);

                                                                  /* DO NOT EDIT */
extern VOID * FunctionCodeAddress(void (*fp)());

                                                                  /* DO NOT EDIT */

